Multithreaded processors allow processor resources to be allocated among multiple threads, each thread including instructions for execution by the processor. Conventional approaches to allocating processor resources attempt to equally divide processor resources between different threads. This round-robin approach to scheduling results in nearly symmetric allocation of processor resources to different threads.
While certain configurations allow specified threads to have deterministic performance, processor resources not used by the specified threads are commonly evenly distributed among the remaining threads. However, symmetric execution of different threads may not optimally use processor resources. For example, symmetric allocation of processor resources would be inefficient if a first thread includes instructions from a primary operating system and a second thread includes instructions from a maintenance operating system. In this example, the primary operating system would be more frequently used while the maintenance operation would be less frequently used. Hence, asymmetric allocation of processor resources among different types of threads is beneficial.